
import Foundation

public protocol Ilog {
    /**
     * Send a  VERBOSE log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param  – The message you would like logged.
     * @return
     */
    func v(_ tag: String,_ function: String, _ msg: String, _ line:Int)
    /**
     * Send a VERBOSE log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param msg – The message you would like logged.
     * @param tr – An exception to log
     * @return
     */
    func v(_ tag: String, _ function: String, _ msg: String, _ tr: Error , _ line:Int)
    /**
     * Send a DEBUG log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param  – The message you would like logged.
     * @return
     */
    func d(_ tag: String, _ function: String, _ msg: String , _ line:Int)
    /**
     * Send a DEBUG log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param msg – The message you would like logged.
     * @param tr – An exception to log
     * @return
     */
    func d(_ tag: String, _ function: String, _ msg: String, _ tr: Error , _ line:Int)
    /**
     * Send a INFO log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param  – The message you would like logged.
     * @return
     */
    func i(_ tag: String, _ function: String, _ msg: String , _ line:Int)
    /**
     * Send a INFO log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param msg – The message you would like logged.
     * @param tr – An exception to log
     * @return
     */
    func i(_ tag: String, _ function: String, _ msg: String, _ tr: Error? , _ line:Int)
    /**
     * Send a WARN log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param  – The message you would like logged.
     * @return
     */
    func w(_ tag: String, _ function: String, _ msg: String , _ line:Int)
    /**
     * Send a WARN log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param msg – The message you would like logged.
     * @param tr – An exception to log
     * @return
     */
    func w(_ tag: String, _ function: String, _ msg: String, _ tr: Error , _ line:Int)
    /**
     * Send a ERROR log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param  – The message you would like logged.
     * @return
     */
    func e(_ tag: String, _ function: String, _ msg: String , _ line:Int)
    /**
     * Send a ERROR log message and log the exception.*
     * @param tag – Used to identify the source of a log message. It usually identifies the class or activity where the log call occurs.     *
     * @param msg – The message you would like logged.
     * @param tr – An exception to log
     * @return
     */
    func e(_ tag: String, _ function: String, _ msg: String, _ tr: Error , _ line:Int)
}

